package com.ruicar.afs.cloud.bizcommon.business.bean;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * @Description: 还款计划、摊销计划、收入计划
 * @Author zyr
 * @Date 2020/6/3
 * @Version V1.0
 **/
@Data
@NoArgsConstructor
public class AfsRepaymentInfo {

    /**
     * 期数
     */
    private Integer no;
    /**
     * 月供
     */
    private BigDecimal yueGong;
    /**
     * 本金
     */
    private BigDecimal benJin;
    /**
     * 利息
     */
    private BigDecimal liXi;
    /**
     * 余额
     */
    private BigDecimal yuE;
    /**
     * 月利息
     */
    private BigDecimal monthlyInterest;
    /**
     * 复合利息
     */
    private BigDecimal compoundInterest;
    /**
     * 每月收入摊销
     */
    private BigDecimal inComAMT;
    /**
     * 摊销天数
     */
    private BigDecimal inComeDD;
    /**
     * 执行时间
     */
    private String executionDate;
    /**
     * 结算时间
     */
    private String postingDate;

    /**
     * 结算时间
     */
    private String dueDate;
    /**
     * 每月摊销金额
     */
    private BigDecimal chargeAmortizeAmt;
    /**
     * 剩余摊销金额
     */
    private BigDecimal chargeOutstandingAmt;
    /**
     * 总的摊销金额
     */
    private BigDecimal charegOpeningBalAmt;
    /**
     * 左值
     */
    private BigDecimal leftValue;
    /**
     * 右值
     */
    private BigDecimal rightValue;

    /**
     * 修改金额，内部专用
     */
    private BigDecimal modifyAmount = BigDecimal.ZERO;

    // add by sijun.yu 2020-7-14 还款计划
    public AfsRepaymentInfo(Integer no, BigDecimal yueGong, BigDecimal benJin, BigDecimal liXi, BigDecimal yuE, BigDecimal monthlyInterest, BigDecimal compoundInterest) {
        this.no = no;
        this.yueGong = yueGong;
        this.benJin = benJin;
        this.liXi = liXi;
        this.yuE = yuE;
        this.monthlyInterest = monthlyInterest;
        this.compoundInterest = compoundInterest;
    }

    // add by sijun.yu 2020-7-30 摊销计划
    public AfsRepaymentInfo(Integer no, String executionDate, String dueDate, BigDecimal chargeAmortizeAmt, BigDecimal chargeOutstandingAmt, BigDecimal charegOpeningBalAmt) {
        this.no = no;
        this.executionDate = executionDate;
        this.dueDate = dueDate;
        this.chargeAmortizeAmt = chargeAmortizeAmt;
        this.chargeOutstandingAmt = chargeOutstandingAmt;
        this.charegOpeningBalAmt = charegOpeningBalAmt;
    }

    // add by sijun.yu 2020-7-30 收入计划
    public AfsRepaymentInfo(Integer no, BigDecimal inComAMT, BigDecimal inComeDD, String executionDate, String postingDate) {
        this.no = no;
        this.inComAMT = inComAMT;
        this.inComeDD = inComeDD;
        this.executionDate = executionDate;
        this.postingDate = postingDate;
    }

}
